home *** CD-ROM | disk | FTP | other *** search
- * Program.: NATLOG.PRG
- * Author..: Kelly Mc Tiernan
- * Date....: 12/18/83
- * Notice..: Copyright 1983, Kelly Mc Tiernan, All Rights Reserved
- * Version.: dBASE II, version 2.4x
- * Notes...: Calculates the natural logarithm of a number.
- * Local...: first, interim, power
- *
- * IN: number-N-10
- * OUT: natlog-N-10-5
- *
- STORE number TO first
- STORE 0 TO natlog
- DO CASE
- CASE first <= 0
- ? "ERROR - CANNOT TAKE THE NATURAL LOGARITHM "+;
- "OF A NUMBER <= 0"
- CANCEL
- CASE first > 2
- * ---Calculate integer portion.
- DO WHILE first > 2
- STORE first / 2 TO first
- STORE natlog + 0.6931471 TO natlog
- ENDDO
- CASE first < .5
- * ---Handle lower convergence.
- DO WHILE first < .5
- STORE first * 2 TO first
- STORE natlog - 0.69314718 TO natlog
- ENDDO
- ENDCASE
- * ---Handle upper convergence.
- IF first > 1.1
- DO WHILE first > 1.1
- STORE first / 1.1 TO natlog
- STORE natlog + 0.09531018 TO natlog
- ENDDO
- ENDIF
- * ---Calculation the remainder.
- STORE - ( first - 1 ) TO first
- STORE 1 TO interim
- STORE 0 TO power
- DO WHILE power <= 25
- STORE power + 1 TO power
- STORE first * interim / 1 TO interim
- STORE natlog - interim / power TO natlog
- ENDDO
- STORE INT(natlog) + INT( (natlog -;
- INT(natlog)) * 100000 + .5 ) / 100000.00000 TO natlog
- RELEASE first, interim, power
- RETURN
- * EOF: NATLOG.PRG